Function Calling

LLMが外部ツールや関数を呼び出すための仕組み。LLMが自然言語の文脈から「この関数を呼ぶべき」と判断し、引数を生成する能力。

仕組み

  1. 開発者がツールの定義(名前、説明、引数スキーマ)をLLMに渡す
  2. LLMが会話の文脈からツールの呼び出しが必要と判断
  3. LLMがツール名と引数をJSON等の構造化形式で出力
  4. アプリケーション側でツールを実際に実行し、結果をLLMに返す
  5. LLMが実行結果を踏まえて応答を生成

LLM自体がツールを実行するのではなく、「何を呼ぶべきか」を判断するだけで、実際の実行はホスト側が担う。

ベンダーごとの呼称

プロバイダー 呼称
OpenAI Function Calling
Anthropic Tool Use
Google Function Calling

機能は本質的に同じだが、APIの仕様(スキーマ形式等)が異なるため、プロバイダーを切り替えるとコードの書き換えが必要になる。

MCPとの関係

Function Callingは「AIとツールの接続」という同じ目的を持つが、実装レベルで差異がある:

観点 Function Calling MCP
標準化 プロバイダー独自仕様 オープンスタンダード
再利用性 特定AIアプリ専用 複数AIアプリで共用可
サーバー分離 ホストアプリ内に統合 独立したMCPサーバー
適用場面 単一アプリ、低レイテンシ重視 複数AI、ベンダー非依存

MCPは「AIのUSB-C」と例えられる。一度MCPサーバーを作れば、どのLLMからでも利用できる。

設計上の考慮点

関連